#pragma once
#include "RendererBase.h"
#include "Layout.h"
#include "Font.h"
#include "Caller.h"
namespace NBGUI
{
	struct GUIAPI GUIDrawer
	{
		typedef std::map<std::string,std::function< void(std::vector<info>& i) > > CallBackMap;

		RendererBase* pRenderer;
		Layout* playout;
		FunctionCaller* caller;//just lazy, I put it here to give every element to access it 
		CallBackMap* callBackMap;//same reason...

		GUIDrawer(RendererBase* renderer, CallBackMap* callMap):
		pRenderer(renderer),playout(nullptr),caller(new FunctionCaller()),callBackMap(callMap)
		{}

		~GUIDrawer()
		{
			delete playout;
			delete font;
			delete caller;
		}

		int vboId,iboId;

		Font* font;
	};
}